Managed runtime languages, such as Java® and the Microsoft® common language runtime, are popular among software developers for many computing tasks in a wide variety of usage scenarios. For example, many cloud computing workloads are executed using a managed runtime environment. As another example, many trusted execution environments also support execution with a managed runtime environment. Managed runtime environments, such as the Java virtual machine, may execute multiple managed threads within a single operating system process. Security and isolation between threads may be enforced by a software firewall that uses language features such as the Java memory model, namespaces, or other aspects of the Java programming model. However, arbitrary bytecode executed by the Java virtual machine may circumvent those language features. Thus, many systems execute a separate Java virtual machine process instance for every managed thread.